
# 写一个函数 print_narcissistic_number()  打印出100 ~ 999 范围内水仙花数(narcissistic number)
# 水仙花数是指 百位数的三次方 加上 十位数的三次方 加上 个位数的三次方 等于原数的数
# ```
#
# 例如:$153=1^3+5^3+3^3$
#
# > 提示，答案有4个。
def print_narcissistic_number():
    # 方法1，先生成数 100～999, 再把数转为字符，
    # 提取 百位十位和个位，再转为数字再计算
    for number in range(100, 1000):
        s = str(number)
        bai = int(s[0])
        shi = int(s[1])
        ge = int(s[2])
        if bai ** 3 + shi ** 3 + ge ** 3 == number:
            print(number)

def print_narcissistic_number2():
    # 方法2， 用三重for循环，生成 百位:1~9, 十位：0～9，个位:0~9
    # 组合成 整个数组再判断
    for bai in range(1, 10):
        for shi in range(10):
            for ge in range(10):
                # print(bai, shi, ge)
                number = bai * 100 + shi * 10 + ge
                if bai ** 3 + shi ** 3 + ge ** 3 == number:
                    print(number)

print_narcissistic_number()
print('==================')
print_narcissistic_number2()
